let obj = {
    name: "Hydra"
};

obj.age = 35;

// Object.defineProperty(obj,属性名,{配置参数})
// 改方法是Vue2的底层原理

Object.defineProperty(obj,"sex",{
    value: "男"
});

// Object.defineProperty装载的属性，默认是非可遍历属性，并且值不可修改，不可删除
console.log("keys = ",Object.keys(obj))

// 值不可修改
obj.sex = "女";
console.log("obj.sex =",obj.sex); // 男

// 不可删除
delete obj.sex;
console.log("obj.sex =",obj.sex); // 男

let obj2 = {
    name: "刘煜鑫"
}

Object.defineProperty(obj2,"age",{
    value: 20,
    // 可修改（默认false）
    writable: true,
    // 可遍历（默认false）
    enumerable: true,
    // 可删除（默认false）
    configurable: true
})

console.log("obj2.keys = ",Object.keys(obj2));
obj2.age = 21;
console.log("obj2 = ",obj2);

delete obj2.age;
console.log("obj2 = ",obj2);

// console.log("obj = ",obj);